// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})

const db = cloud.database()

// 云函数入口函数
exports.main = async (event, context) => {
  console.log('[getCart] 开始执行');

  // 获取用户openid
  const wxContext = cloud.getWXContext()
  // 允许传入指定的openid（适用于管理员操作或高权限操作）
  const openid = event.openid || wxContext.OPENID || '';

  console.log('[getCart] openid:', openid);

  if (!openid) {
    console.error('[getCart] 未能获取到用户openid');
    return { success: false, error: '未能获取到用户身份信息' };
  }

  // 简单方案：直接尝试查询数据
  try {
    console.log('[getCart] 尝试查询购物车数据');

    // 直接尝试查询，如果集合不存在会在catch中处理
    const cartRes = await db.collection('cart')
      .where({ openid })
      .limit(1)
      .get();

    console.log('[getCart] 查询结果:', cartRes);

    // 如果查询到购物车数据
    if (cartRes.data && cartRes.data.length > 0 && cartRes.data[0].items) {
      console.log('[getCart] 返回购物车数据，商品数量:', cartRes.data[0].items.length);
      return {
        success: true,
        data: cartRes.data[0].items
      };
    }

    // 没有查询到数据，返回空数组
    console.log('[getCart] 购物车为空');
    return {
      success: true,
      data: []
    };
  } catch (error) {
    console.error('[getCart] 查询失败:', error);

    // 可能是集合不存在等原因，返回空购物车
    return {
      success: true,
      data: []
    };
  }
} 